package com.mdd.admin.vo.order;

import com.mdd.admin.vo.log.OrderLogDetailVo;
import com.mdd.admin.vo.staff.StaffDetailVo;
import com.mdd.common.entity.staff.Staff;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * OrderVo
 */
@Data
@ApiModel(value = "订单详情返回对象", description = "订单详情返回对象")
public class OrderDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单id")
    private Long id;
    @ApiModelProperty(value = "订单编号")
    private String sn;
    @ApiModelProperty(value = "师傅们的id")
    private String staffIds;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "用户昵称")
    private String nickname;
    @ApiModelProperty(value = "第三方平台交易流水号")
    private String transactionId;
    @ApiModelProperty(value = "订单类型;0-普通订单;")
    private Integer orderType;
    @ApiModelProperty(value = "订单来源;1-微信小程序;2-微信公众号;3-手机H5;4-PC;5-苹果app;6-安卓app;")
    private Integer orderTerminal;
    @ApiModelProperty(value = "订单来源;1-微信小程序;2-微信公众号;3-手机H5;4-PC;5-苹果app;6-安卓app;")
    private String orderTerminalName;
    @ApiModelProperty(value = "订单状态;0-待支付;1-预约中;2-服务中;3-已完成;4-已关闭")
    private Integer orderStatus;
    @ApiModelProperty(value = "订单状态;0-待支付;1-预约中;2-服务中;3-已完成;4-已关闭")
    private String orderStatusName;
    @ApiModelProperty(value = "支付状态;0-待支付;1-已支付;")
    private Integer payStatus;
    @ApiModelProperty(value = "支付状态;0-待支付;1-已支付;")
    private String payStatusName;
    @ApiModelProperty(value = "支付方式:1-微信支付;2-支付宝支付;3-余额支付;")
    private Integer payWay;
    @ApiModelProperty(value = "支付方式:1-微信支付;2-支付宝支付;3-余额支付;")
    private String payWayName;
    @ApiModelProperty(value = "应付款金额")
    private BigDecimal orderAmount;
    @ApiModelProperty(value = "订单总价")
    private BigDecimal totalAmount;
    @ApiModelProperty(value = "订单服务数量")
    private Integer totalNum;
    @ApiModelProperty(value = "用户备注")
    private String userRemark;
    @ApiModelProperty(value = "订单备注")
    private String orderRemarks;
    @ApiModelProperty(value = "核销码")
    private String verificationCode;
    @ApiModelProperty(value = "核销状态:1-已核销;0-待核销;")
    private Integer verificationStatus;
    @ApiModelProperty(value = " 核销状态:1-已核销;0-待核销;")
    private String verificationStatusName;
    @ApiModelProperty(value = "完成时间")
    private String finishTime;
    @ApiModelProperty(value = "是否已派单:1-是;0-否;")
    private Integer isDispatch;
    @ApiModelProperty(value = "支付时间")
    private String payTime;
    @ApiModelProperty(value = "订单取消时间")
    private String cancelTime;

    /**
     * 师傅信息
     **/
    @ApiModelProperty(value = "师傅id")
    private Long staffId;
    @ApiModelProperty(value = "师傅名称")
    private String staffName;
    @ApiModelProperty(value = "师傅图片")
    private String staffImage;
    @ApiModelProperty(value = "师傅编号")
    private String staffSn;
    @ApiModelProperty(value = "师傅信息")
    private List<StaffDetailVo> staff;

    /**
     * 预约信息
     **/
    @ApiModelProperty(value = "联系人")
    private String contact;
    @ApiModelProperty(value = "联系电话")
    private String mobile;
    @ApiModelProperty(value = "省id")
    private Long provinceId;
    @ApiModelProperty(value = "省")
    private String province;
    @ApiModelProperty(value = "市id")
    private Long cityId;
    @ApiModelProperty(value = "市")
    private String city;
    @ApiModelProperty(value = "区id")
    private Long districtId;
    @ApiModelProperty(value = "区")
    private String district;
    @ApiModelProperty(value = "详细地址")
    private String address;
    @ApiModelProperty(value = "预约上门时间-开始")
    private Long appointTimeStart;
    @ApiModelProperty(value = "预约上门时间-开始str")
    private String appointTimeStartStr;
    @ApiModelProperty(value = "预约上门时间-结束")
    private Long appointTimeEnd;
    @ApiModelProperty(value = "预约上门时间-结束str")
    private String appointTimeEndStr;
    @ApiModelProperty(value = "预约时间")
    private String appointTime;
    @ApiModelProperty(value = "星期几")
    private String weekDay;
    @ApiModelProperty(value = "下单时间")
    private String createTime;

    /**
     * 服务信息
     **/
    @ApiModelProperty(value = "服务id")
    private Long goodsId;
    @ApiModelProperty(value = "服务名称")
    private String goodsName;
    @ApiModelProperty(value = "单位")
    private String unitName;
    @ApiModelProperty(value = "服务图片")
    private String goodsImage;
    @ApiModelProperty(value = "服务数量")
    private Integer goodsNum;
    @ApiModelProperty(value = "服务价格")
    private BigDecimal goodsPrice;
    @ApiModelProperty(value = "服务总价")
    private BigDecimal totalPrice;
    @ApiModelProperty(value = "实际支付服务金额")
    private BigDecimal totalPayPrice;

    /**
     * 订单日志
     **/
    @ApiModelProperty(value = "订单日志")
    private List<OrderLogDetailVo> orderLogList;

    @ApiModelProperty(value = "取消按钮是否显示:1是 0否")
    private int cancelBtn;
    @ApiModelProperty(value = "删除按钮是否显示:1是 0否")
    private int deleteBtn;
    @ApiModelProperty(value = "核销按钮是否显示:1是 0否")
    private int verificationBtn;
}
